#ifndef _GAME_CLIENT_H_
#define _GAME_CLIENT_H_

#include "character.h"
#include "characternet.h"
#include "bullet.h"
#include "timeinfo.h"
#include "character3D.h"
#include "monster.h"
#include "monster3d.h"

class MonsterMain:public CMonster,public Monster3D
{
public:
	void Work(float time)
	{
		CMonster::Work(time,false);
		Monster3D::UpdateMesh();
	}
};

class CharacterOther:public Character3D,public Character
{
public:
	void Work(float time)
	{
		Character::Work(time,false);
		Character3D::UpdateMesh();
	}
};

class CharacterMain:public Character3D,public CharacterNet 
{
public:
	void Work(GameClient& gc, float time)
	{
		CharacterNet::WorkClient(gc);
		CharacterNet::Work(time,true);
		Character3D::UpdateMesh();
	}
};


class GameClient
{
private:
enum {MAX_MONSTER = 0};
enum {MAX_BOSS = 0};
enum {BULLET_T,BULLET_F};
float TargetX;
float TargetY;
float TargetBulletX;
float TargetBulletY;
bool No_Bullet;

private:
list<CharacterOther> OtherPlayer;
list<CBullet> Bullet;
CharacterMain Player;
TimeInfo TI;
Ogre::SceneManager* sManager;
Ogre::Camera* pCamera;
list<MonsterMain> Monster;

public:
	GameClient();

	void UpdateMonsterAction(Monster_Action&);

	void UpdateCharacterPos(Packet_Pos_Name&);

	void KickCharacter(Packet_Kick_Player&);

	void UpdateMonster(Monster_Pos&);

	void ChangeCharacterAction(Packet_Action&);

	void PutTestCharacter();

	void Init(HWND hWnd,Ogre::SceneManager*,Ogre::Camera*);
	
	void Work(HWND hWnd);
	
	void Draw(HDC hdc);
};



#endif